ListView中使用ViewHolder,setBackground失效
情境:
在 Fragement 中使用了 listView,listView 中 也用了 viewHolder
當在程式中動態指定要更換某個 id 的 row 中的背景時
someView.setBackground();
發現每個 row 的背景開始亂跳
有些非指定的 row 竟然也會更換背景
後來一查
這是用view holder中常見的error
只要再將背景變回來即可….
[sourcecode language=”JAVA”]
//view holder處理
…..
//針對某列處理
if (要對TextViewB做動作的條件) {
holder.TextViewB.setBackground(要換的背景圖);
} else {
holder.TextViewB.setBackground(原來的背景圖);
}
[/sourcecode]
資料來源:
http://stackoverflow.com/questions/18986730/personalized-listview-error-on-set-background-color
另外
設背景圖後
如果要動態移除背景圖,可以使用下面方式
[sourcecode language=”JAVA”]
view.setBackgroundResource(0);
[/sourcecode]
資料來源:
http://stackoverflow.com/questions/6826564/android-remove-background-drawable-programmatically